package com.martian.service;

import com.martian.pojo.dto.*;
import com.martian.pojo.entity.MovieCollect;
import com.martian.pojo.form.FrozenUserForm;
import com.martian.pojo.form.UserLogOutForm;
import com.martian.pojo.form.UserLoginForm;
import com.martian.pojo.form.UserRegisterForm;

import java.sql.SQLIntegrityConstraintViolationException;
import java.util.List;

public interface UserService {
    LoginSuccessDto userLogin(UserLoginForm userLoginForm);

    List<RecMovieDto> recMovieForYou(Integer size,Integer userId);

    void userlogout(UserLogOutForm userLogOutForm);

    int collectMovie(MovieCollect movieCollect) throws SQLIntegrityConstraintViolationException;

    UserRatingHistoryDto getAllCollectedMovies(Integer page, Integer pageSize, Integer userId);

    UserRatingHistoryDto getUserRatingHistory(Integer page, Integer pageSize, Integer userId);

    List<HotUserDto> getHotUsers();

    AllUsersDto getAllUsers(Integer page, Integer pageSize);

    void frozenUsers(FrozenUserForm frozenUserForm);

    UserRatingHistoryDto getUsersScanHistory(Integer page, Integer pageSize);
}
